home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / casm1.lqr / TDISPIO.C < prev    next >
Text File  |  1985-06-03  |  2KB  |  64 lines

  1.  
  2. /*                        Listing 4
  3.                     C to Assembly Interface
  4.       Computer Language, Vol. 2, No. 2 (February, 1985), pp. 49-59
  5.         Modified to remove duplicate leading part, L.P., 5/29/85
  6.    Split into DSPIO.H for #define's and macros and TDSPIO.C, L.P., 5/29/85
  7. */
  8.  
  9. #include "DISPIO.H"
  10.  
  11. main()
  12. {
  13.  int retvals [4] ;
  14.  int index ;
  15.   SET_MODE ;
  16.   hline(0,0,219,80) ;   /* draw box around screen */
  17.   hline(24,0,219,80) ;   /* i.e., manual window using nonwindow characters */ 
  18.   verline(0,0,219,24) ;
  19.   verline(0,79,219,24) ;
  20.   window(3,3,6,5) ;
  21.   window(10,10,5,6) ;
  22.   window(7,17,10,11) ;
  23.   window(15,40,10,6) ;
  24.   window(5,50,20,16) ;
  25.       /* read cursor position */
  26.   for (index=0; index <4; index++ ) {
  27.     curpos(index,index+1) ;
  28.     dispio(read_position,PAGE,0,0,retvals) ;
  29.     printf("For page PAGE, Row:%u, Col:%u, cursor mode=%o,%o \n",
  30.       retvals[3]>>8, (retvals[3]<<8)>>8, retvals[2]>>8,(retvals[2]<<8)>>8) ; 
  31.   }
  32.      /* get current video state */
  33.   dispio(get_state,PAGE,0,0,retvals) ;
  34.   printf("Mode: %u, Columns: %u, Active Page: %u \n",
  35.      (retvals[0]<<8)>>8, retvals[0]>>8, retvals[1]>>8 ) ;
  36. }
  37. window(row,col,width,depth) /* start at row,col, i.e. left upper corner */
  38. char row,col ;
  39. {
  40.      /* first do 4 corners */
  41.   curpos(row,col) ;
  42.   wrtchar(214) ;
  43.   curpos(row+depth,col) ;
  44.   wrtchar(211) ; 
  45.   curpos(row,col+width-1) ;
  46.   wrtchar(183) ;
  47.   curpos(row+depth,col+width-1) ;
  48.   wrtchar(189) ;
  49.      /* then connect corners with horizontal and vertical lines */
  50.   hline(row,col+1,196,width-2) ;
  51.   hline(row+depth,col+1,196,width-2) ;
  52.   verline(row+1,col,186,depth-1) ;
  53.   verline(row+1,col+width-1,186,depth-1) ;
  54. }
  55. verline(row,col,ch,len)
  56. char row, col, ch, len ;
  57. {
  58.   char cnt ;
  59.      for (cnt=len; cnt > 0; cnt--) {
  60.         curpos(row++,col) ;
  61.         wrtchar(ch) ;
  62.      }
  63. }
  64.